package cn.gok.web.beans;

import java.util.ArrayList;
import java.util.List;

public class GoodsExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public GoodsExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andNidIsNull() {
            addCriterion("nid is null");
            return (Criteria) this;
        }

        public Criteria andNidIsNotNull() {
            addCriterion("nid is not null");
            return (Criteria) this;
        }

        public Criteria andNidEqualTo(Integer value) {
            addCriterion("nid =", value, "nid");
            return (Criteria) this;
        }

        public Criteria andNidNotEqualTo(Integer value) {
            addCriterion("nid <>", value, "nid");
            return (Criteria) this;
        }

        public Criteria andNidGreaterThan(Integer value) {
            addCriterion("nid >", value, "nid");
            return (Criteria) this;
        }

        public Criteria andNidGreaterThanOrEqualTo(Integer value) {
            addCriterion("nid >=", value, "nid");
            return (Criteria) this;
        }

        public Criteria andNidLessThan(Integer value) {
            addCriterion("nid <", value, "nid");
            return (Criteria) this;
        }

        public Criteria andNidLessThanOrEqualTo(Integer value) {
            addCriterion("nid <=", value, "nid");
            return (Criteria) this;
        }

        public Criteria andNidIn(List<Integer> values) {
            addCriterion("nid in", values, "nid");
            return (Criteria) this;
        }

        public Criteria andNidNotIn(List<Integer> values) {
            addCriterion("nid not in", values, "nid");
            return (Criteria) this;
        }

        public Criteria andNidBetween(Integer value1, Integer value2) {
            addCriterion("nid between", value1, value2, "nid");
            return (Criteria) this;
        }

        public Criteria andNidNotBetween(Integer value1, Integer value2) {
            addCriterion("nid not between", value1, value2, "nid");
            return (Criteria) this;
        }

        public Criteria andSnameIsNull() {
            addCriterion("sname is null");
            return (Criteria) this;
        }

        public Criteria andSnameIsNotNull() {
            addCriterion("sname is not null");
            return (Criteria) this;
        }

        public Criteria andSnameEqualTo(String value) {
            addCriterion("sname =", value, "sname");
            return (Criteria) this;
        }

        public Criteria andSnameNotEqualTo(String value) {
            addCriterion("sname <>", value, "sname");
            return (Criteria) this;
        }

        public Criteria andSnameGreaterThan(String value) {
            addCriterion("sname >", value, "sname");
            return (Criteria) this;
        }

        public Criteria andSnameGreaterThanOrEqualTo(String value) {
            addCriterion("sname >=", value, "sname");
            return (Criteria) this;
        }

        public Criteria andSnameLessThan(String value) {
            addCriterion("sname <", value, "sname");
            return (Criteria) this;
        }

        public Criteria andSnameLessThanOrEqualTo(String value) {
            addCriterion("sname <=", value, "sname");
            return (Criteria) this;
        }

        public Criteria andSnameLike(String value) {
            addCriterion("sname like", value, "sname");
            return (Criteria) this;
        }

        public Criteria andSnameNotLike(String value) {
            addCriterion("sname not like", value, "sname");
            return (Criteria) this;
        }

        public Criteria andSnameIn(List<String> values) {
            addCriterion("sname in", values, "sname");
            return (Criteria) this;
        }

        public Criteria andSnameNotIn(List<String> values) {
            addCriterion("sname not in", values, "sname");
            return (Criteria) this;
        }

        public Criteria andSnameBetween(String value1, String value2) {
            addCriterion("sname between", value1, value2, "sname");
            return (Criteria) this;
        }

        public Criteria andSnameNotBetween(String value1, String value2) {
            addCriterion("sname not between", value1, value2, "sname");
            return (Criteria) this;
        }

        public Criteria andSdescriptionIsNull() {
            addCriterion("sdescription is null");
            return (Criteria) this;
        }

        public Criteria andSdescriptionIsNotNull() {
            addCriterion("sdescription is not null");
            return (Criteria) this;
        }

        public Criteria andSdescriptionEqualTo(String value) {
            addCriterion("sdescription =", value, "sdescription");
            return (Criteria) this;
        }

        public Criteria andSdescriptionNotEqualTo(String value) {
            addCriterion("sdescription <>", value, "sdescription");
            return (Criteria) this;
        }

        public Criteria andSdescriptionGreaterThan(String value) {
            addCriterion("sdescription >", value, "sdescription");
            return (Criteria) this;
        }

        public Criteria andSdescriptionGreaterThanOrEqualTo(String value) {
            addCriterion("sdescription >=", value, "sdescription");
            return (Criteria) this;
        }

        public Criteria andSdescriptionLessThan(String value) {
            addCriterion("sdescription <", value, "sdescription");
            return (Criteria) this;
        }

        public Criteria andSdescriptionLessThanOrEqualTo(String value) {
            addCriterion("sdescription <=", value, "sdescription");
            return (Criteria) this;
        }

        public Criteria andSdescriptionLike(String value) {
            addCriterion("sdescription like", value, "sdescription");
            return (Criteria) this;
        }

        public Criteria andSdescriptionNotLike(String value) {
            addCriterion("sdescription not like", value, "sdescription");
            return (Criteria) this;
        }

        public Criteria andSdescriptionIn(List<String> values) {
            addCriterion("sdescription in", values, "sdescription");
            return (Criteria) this;
        }

        public Criteria andSdescriptionNotIn(List<String> values) {
            addCriterion("sdescription not in", values, "sdescription");
            return (Criteria) this;
        }

        public Criteria andSdescriptionBetween(String value1, String value2) {
            addCriterion("sdescription between", value1, value2, "sdescription");
            return (Criteria) this;
        }

        public Criteria andSdescriptionNotBetween(String value1, String value2) {
            addCriterion("sdescription not between", value1, value2, "sdescription");
            return (Criteria) this;
        }

        public Criteria andNpriceIsNull() {
            addCriterion("nprice is null");
            return (Criteria) this;
        }

        public Criteria andNpriceIsNotNull() {
            addCriterion("nprice is not null");
            return (Criteria) this;
        }

        public Criteria andNpriceEqualTo(Integer value) {
            addCriterion("nprice =", value, "nprice");
            return (Criteria) this;
        }

        public Criteria andNpriceNotEqualTo(Integer value) {
            addCriterion("nprice <>", value, "nprice");
            return (Criteria) this;
        }

        public Criteria andNpriceGreaterThan(Integer value) {
            addCriterion("nprice >", value, "nprice");
            return (Criteria) this;
        }

        public Criteria andNpriceGreaterThanOrEqualTo(Integer value) {
            addCriterion("nprice >=", value, "nprice");
            return (Criteria) this;
        }

        public Criteria andNpriceLessThan(Integer value) {
            addCriterion("nprice <", value, "nprice");
            return (Criteria) this;
        }

        public Criteria andNpriceLessThanOrEqualTo(Integer value) {
            addCriterion("nprice <=", value, "nprice");
            return (Criteria) this;
        }

        public Criteria andNpriceIn(List<Integer> values) {
            addCriterion("nprice in", values, "nprice");
            return (Criteria) this;
        }

        public Criteria andNpriceNotIn(List<Integer> values) {
            addCriterion("nprice not in", values, "nprice");
            return (Criteria) this;
        }

        public Criteria andNpriceBetween(Integer value1, Integer value2) {
            addCriterion("nprice between", value1, value2, "nprice");
            return (Criteria) this;
        }

        public Criteria andNpriceNotBetween(Integer value1, Integer value2) {
            addCriterion("nprice not between", value1, value2, "nprice");
            return (Criteria) this;
        }

        public Criteria andSimgIsNull() {
            addCriterion("simg is null");
            return (Criteria) this;
        }

        public Criteria andSimgIsNotNull() {
            addCriterion("simg is not null");
            return (Criteria) this;
        }

        public Criteria andSimgEqualTo(String value) {
            addCriterion("simg =", value, "simg");
            return (Criteria) this;
        }

        public Criteria andSimgNotEqualTo(String value) {
            addCriterion("simg <>", value, "simg");
            return (Criteria) this;
        }

        public Criteria andSimgGreaterThan(String value) {
            addCriterion("simg >", value, "simg");
            return (Criteria) this;
        }

        public Criteria andSimgGreaterThanOrEqualTo(String value) {
            addCriterion("simg >=", value, "simg");
            return (Criteria) this;
        }

        public Criteria andSimgLessThan(String value) {
            addCriterion("simg <", value, "simg");
            return (Criteria) this;
        }

        public Criteria andSimgLessThanOrEqualTo(String value) {
            addCriterion("simg <=", value, "simg");
            return (Criteria) this;
        }

        public Criteria andSimgLike(String value) {
            addCriterion("simg like", value, "simg");
            return (Criteria) this;
        }

        public Criteria andSimgNotLike(String value) {
            addCriterion("simg not like", value, "simg");
            return (Criteria) this;
        }

        public Criteria andSimgIn(List<String> values) {
            addCriterion("simg in", values, "simg");
            return (Criteria) this;
        }

        public Criteria andSimgNotIn(List<String> values) {
            addCriterion("simg not in", values, "simg");
            return (Criteria) this;
        }

        public Criteria andSimgBetween(String value1, String value2) {
            addCriterion("simg between", value1, value2, "simg");
            return (Criteria) this;
        }

        public Criteria andSimgNotBetween(String value1, String value2) {
            addCriterion("simg not between", value1, value2, "simg");
            return (Criteria) this;
        }

        public Criteria andSmctagIsNull() {
            addCriterion("smctag is null");
            return (Criteria) this;
        }

        public Criteria andSmctagIsNotNull() {
            addCriterion("smctag is not null");
            return (Criteria) this;
        }

        public Criteria andSmctagEqualTo(Integer value) {
            addCriterion("smctag =", value, "smctag");
            return (Criteria) this;
        }

        public Criteria andSmctagNotEqualTo(Integer value) {
            addCriterion("smctag <>", value, "smctag");
            return (Criteria) this;
        }

        public Criteria andSmctagGreaterThan(Integer value) {
            addCriterion("smctag >", value, "smctag");
            return (Criteria) this;
        }

        public Criteria andSmctagGreaterThanOrEqualTo(Integer value) {
            addCriterion("smctag >=", value, "smctag");
            return (Criteria) this;
        }

        public Criteria andSmctagLessThan(Integer value) {
            addCriterion("smctag <", value, "smctag");
            return (Criteria) this;
        }

        public Criteria andSmctagLessThanOrEqualTo(Integer value) {
            addCriterion("smctag <=", value, "smctag");
            return (Criteria) this;
        }

        public Criteria andSmctagIn(List<Integer> values) {
            addCriterion("smctag in", values, "smctag");
            return (Criteria) this;
        }

        public Criteria andSmctagNotIn(List<Integer> values) {
            addCriterion("smctag not in", values, "smctag");
            return (Criteria) this;
        }

        public Criteria andSmctagBetween(Integer value1, Integer value2) {
            addCriterion("smctag between", value1, value2, "smctag");
            return (Criteria) this;
        }

        public Criteria andSmctagNotBetween(Integer value1, Integer value2) {
            addCriterion("smctag not between", value1, value2, "smctag");
            return (Criteria) this;
        }

        public Criteria andDcdateIsNull() {
            addCriterion("dcdate is null");
            return (Criteria) this;
        }

        public Criteria andDcdateIsNotNull() {
            addCriterion("dcdate is not null");
            return (Criteria) this;
        }

        public Criteria andDcdateEqualTo(String value) {
            addCriterion("dcdate =", value, "dcdate");
            return (Criteria) this;
        }

        public Criteria andDcdateNotEqualTo(String value) {
            addCriterion("dcdate <>", value, "dcdate");
            return (Criteria) this;
        }

        public Criteria andDcdateGreaterThan(String value) {
            addCriterion("dcdate >", value, "dcdate");
            return (Criteria) this;
        }

        public Criteria andDcdateGreaterThanOrEqualTo(String value) {
            addCriterion("dcdate >=", value, "dcdate");
            return (Criteria) this;
        }

        public Criteria andDcdateLessThan(String value) {
            addCriterion("dcdate <", value, "dcdate");
            return (Criteria) this;
        }

        public Criteria andDcdateLessThanOrEqualTo(String value) {
            addCriterion("dcdate <=", value, "dcdate");
            return (Criteria) this;
        }

        public Criteria andDcdateLike(String value) {
            addCriterion("dcdate like", value, "dcdate");
            return (Criteria) this;
        }

        public Criteria andDcdateNotLike(String value) {
            addCriterion("dcdate not like", value, "dcdate");
            return (Criteria) this;
        }

        public Criteria andDcdateIn(List<String> values) {
            addCriterion("dcdate in", values, "dcdate");
            return (Criteria) this;
        }

        public Criteria andDcdateNotIn(List<String> values) {
            addCriterion("dcdate not in", values, "dcdate");
            return (Criteria) this;
        }

        public Criteria andDcdateBetween(String value1, String value2) {
            addCriterion("dcdate between", value1, value2, "dcdate");
            return (Criteria) this;
        }

        public Criteria andDcdateNotBetween(String value1, String value2) {
            addCriterion("dcdate not between", value1, value2, "dcdate");
            return (Criteria) this;
        }

        public Criteria andNmaxidIsNull() {
            addCriterion("nmaxid is null");
            return (Criteria) this;
        }

        public Criteria andNmaxidIsNotNull() {
            addCriterion("nmaxid is not null");
            return (Criteria) this;
        }

        public Criteria andNmaxidEqualTo(Integer value) {
            addCriterion("nmaxid =", value, "nmaxid");
            return (Criteria) this;
        }

        public Criteria andNmaxidNotEqualTo(Integer value) {
            addCriterion("nmaxid <>", value, "nmaxid");
            return (Criteria) this;
        }

        public Criteria andNmaxidGreaterThan(Integer value) {
            addCriterion("nmaxid >", value, "nmaxid");
            return (Criteria) this;
        }

        public Criteria andNmaxidGreaterThanOrEqualTo(Integer value) {
            addCriterion("nmaxid >=", value, "nmaxid");
            return (Criteria) this;
        }

        public Criteria andNmaxidLessThan(Integer value) {
            addCriterion("nmaxid <", value, "nmaxid");
            return (Criteria) this;
        }

        public Criteria andNmaxidLessThanOrEqualTo(Integer value) {
            addCriterion("nmaxid <=", value, "nmaxid");
            return (Criteria) this;
        }

        public Criteria andNmaxidIn(List<Integer> values) {
            addCriterion("nmaxid in", values, "nmaxid");
            return (Criteria) this;
        }

        public Criteria andNmaxidNotIn(List<Integer> values) {
            addCriterion("nmaxid not in", values, "nmaxid");
            return (Criteria) this;
        }

        public Criteria andNmaxidBetween(Integer value1, Integer value2) {
            addCriterion("nmaxid between", value1, value2, "nmaxid");
            return (Criteria) this;
        }

        public Criteria andNmaxidNotBetween(Integer value1, Integer value2) {
            addCriterion("nmaxid not between", value1, value2, "nmaxid");
            return (Criteria) this;
        }

        public Criteria andNminidIsNull() {
            addCriterion("nminid is null");
            return (Criteria) this;
        }

        public Criteria andNminidIsNotNull() {
            addCriterion("nminid is not null");
            return (Criteria) this;
        }

        public Criteria andNminidEqualTo(Integer value) {
            addCriterion("nminid =", value, "nminid");
            return (Criteria) this;
        }

        public Criteria andNminidNotEqualTo(Integer value) {
            addCriterion("nminid <>", value, "nminid");
            return (Criteria) this;
        }

        public Criteria andNminidGreaterThan(Integer value) {
            addCriterion("nminid >", value, "nminid");
            return (Criteria) this;
        }

        public Criteria andNminidGreaterThanOrEqualTo(Integer value) {
            addCriterion("nminid >=", value, "nminid");
            return (Criteria) this;
        }

        public Criteria andNminidLessThan(Integer value) {
            addCriterion("nminid <", value, "nminid");
            return (Criteria) this;
        }

        public Criteria andNminidLessThanOrEqualTo(Integer value) {
            addCriterion("nminid <=", value, "nminid");
            return (Criteria) this;
        }

        public Criteria andNminidIn(List<Integer> values) {
            addCriterion("nminid in", values, "nminid");
            return (Criteria) this;
        }

        public Criteria andNminidNotIn(List<Integer> values) {
            addCriterion("nminid not in", values, "nminid");
            return (Criteria) this;
        }

        public Criteria andNminidBetween(Integer value1, Integer value2) {
            addCriterion("nminid between", value1, value2, "nminid");
            return (Criteria) this;
        }

        public Criteria andNminidNotBetween(Integer value1, Integer value2) {
            addCriterion("nminid not between", value1, value2, "nminid");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}